﻿//383. 赎金信

//给你两个字符串：ransomNote 和 magazine ，判断 ransomNote 能不能由 magazine 里面的字符构成。
//如果可以，返回 true ；否则返回 false 。
//magazine 中的每个字符只能在 ransomNote 中使用一次。


class Solution {
public:
    bool canConstruct(string ransomNote, string magazine)
    {
        if (ransomNote.size() > magazine.size())
        {
            return false;
        }

        vector<int> s(26, 0);
        for (auto& e : magazine)
        {
            s[e - 'a']++;
        }
        for (auto& e : ransomNote)
        {
            s[e - 'a']--;
            if (s[e - 'a'] < 0) return false;
        }
        return true;
    }
};